<?php

/*
 * php中数组的使用
 * $js=[1,2,3,4,5];   $js[1]=2
 *  // php中的数组存的是键值对（key，value）
 * $php=[0=>1,1=>2,2=>3,3=>4];
 * $php2=['a'=>'and','b'=>"bady",'人'=>'人之初'];  $php2['b']=bady
 */

// 创建数组
$arr1=array(1,2,3,4,5);
echo 'arr1【3】:'.$arr1[3];
$arr2=array(12=>'and',55=>'or');
echo '<br>';
echo 'arr2[12]:'.$arr2[12];
$arr3=['a','b','c'];
$arr4=['a'=>'阿里','b'=>'百度','t'=>'腾讯'];
echo '<br>';
var_dump($arr3);
echo '<br>';
var_dump($arr4);
echo '<br>';


//1、创建数组存储游戏人物名称，里面存最少三个元素，
//2、创建数组存储游戏人物名称，下标为人物的职业（如['射手'=>'后羿']），最少三个元素，然后分别输出每个元素；
//3、创建数组存储自己的成绩，下标为课程名（如[’java‘=>60]）,最少存储4门课程，然后输出数组的类型和内容
//4、创建数组存储宿舍成员的年龄，然后依次输出
$arr5=[22,21,18,19];
//5、创建数组存储宿舍成员的姓名和年龄，然后依次输出
$arr6=['张三'=>22,'李四'=>21];
echo '张三的年龄是：'.$arr6['张三'];
echo '<br>';
echo '李四的年龄是：'.$arr6['李四'];
echo '<br>';
// 存学生信息
$arr7=['name'=>'张三','sex'=>'男','age'=>'18'];
echo $arr7['name'];
echo '<br>';
// 用二维数组存姓名和年龄
$arr8=[ ['张三',22],['李四',21]  ];
echo '姓名：'.$arr8[0][0];
echo '<br>';
echo '年龄：'.$arr8[0][1];
echo '<br>';
echo '姓名：'.$arr8[1][0];
echo '<br>';
echo '年龄：'.$arr8[1][1];
echo '<br>';

### 6.2、数组常用方法

//count()   返回数组中元素的数量  sizeof() 函数是 count() 函数的别名
 echo '获取数组长度:';
 echo count($arr7);
echo '<br>';
//join()  数组转字符串
echo 'arr5转字符串:'. join($arr5,'-'); // 第二个参数指定转换后每个元素的分隔符
echo '<br>';
echo 'arr7转字符串:'. join($arr7,'，'); // 转换为字符串后，值保留值，不保留下标（key）
echo '<br>';
//explode()  字符串转数组   ， 字符串之间必须有间隔符号
$strArr1='202010507';
$arr9=explode('0',$strArr1);
echo 'strArr1转为数组后：';
var_dump($arr9);
$strArr2='张三，李四，王五';
$arr9=explode('，',$strArr2);
echo 'strArr1转为数组后：';
var_dump($arr9);
echo '<br>';

//array_key_first()  返回数组的第一个元素的键（key）（下标）
$arr10=['name'=>'张三','sex'=>'男','age'=>'18'];
echo 'arr10第一个元素的下标(key值)是：'.array_key_first($arr10);
echo '<br>';
//array_key_last()  返回数组的最后一个元素的键
echo 'arr10最后一个元素的下标(key值)是：'.array_key_last($arr10);
echo '<br>';
    // 在不知道明确下标的时候，想要获取第一个元素的值
$key1=array_key_first($arr10);
echo '在不知道明确下标的时候，获取第一个元素的值:'. $arr10[$key1];
echo '<br>';
//array_shift()   删除数组中的第一个元素，并返回被删除的元素
echo 'arr10的元素：';
var_dump($arr10);
    // 删除数组中的第一个元素
array_shift($arr10);
echo '<br>';
var_dump($arr10);
//array_pop()  删除数组中的最后一个元素
array_pop($arr10);
echo '<br>';
var_dump($arr10);
//array_unshift()   向数组插入新元素。新数组的值将被插入到数组的开头
array_unshift($arr10,'张三');
echo '<br>';
var_dump($arr10);
//array_push()   向数组尾部插入一个或多个元素
array_push($arr10,'姓名');
echo '<br>';
var_dump($arr10);

/**
 * array_unshift()、array_push() 一般只用在默认下标的数组
 * 指定下标的数组，可以直接用 数组名[下标]=值  添加元素
 */
$arr11=[45,88,152,79];
// 给末尾添加元素
array_push($arr11,100);
echo '<br>';
var_dump($arr11);
// 给开头添加
array_unshift($arr11,666);
echo '<br>';
var_dump($arr11);
$arr12=['name'=>'张三','sex'=>'男','age'=>'18'];
$arr12['tel']='15812345678';
echo '<br>';
var_dump($arr12);